package com.foreknow.demo8;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * Map<K,V>接口：Map集合是以键(key)值(value)对的方式来保存元素的
 * 实现类： HashMap   TreeMap(根据key排序)
 * 常用方法：
 *  put(K key, V value) 将指定的值与该映射中的指定键相关联（可选操作）。
 *  get(Object key) 返回到指定键所映射的值，或 null如果此映射包含该键的映射。
 *
 *
 */
public class MapDemo {
    public static void main(String[] args) {
        Person p1 = new Person(1,"tom",20);
        Person p2= new Person(2,"fender",21);
        Person p3 = new Person(3,"gibson",22);
        //创建一个Map容器
        Map<String,Person> map = new HashMap<>();
        //向Map集合中添加元素
        map.put("p1",p1);
        map.put("p2",p2);
        map.put("p3",p3);
        //从Map集合中根据key获取某个元素
        Person p = map.get("p3");
        System.out.println(p.getName());
        //如何对Map遍历？
        Set<Map.Entry<String,Person>> set = map.entrySet();
        Iterator<Map.Entry<String,Person>> it = set.iterator();
        while (it.hasNext()) {
            Map.Entry<String,Person> entry = it.next();
            //获取key值
            String key = entry.getKey();
            //获取value
            Person value = entry.getValue();
            System.out.println("key="+ key + " value=" + value.getName());
        }
    }
}
